home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmiSoft / Dev / misc / WHDLoad_dev.lha / WHDLoad / Install Templates / Patcher Install / install < prev    next >
Encoding:
Text File  |  2003-10-25  |  10.4 KB  |  330 lines

  1. ; $Id: install 1.5 2003/10/24 20:00:10 wepl Exp wepl $
  2.  
  3. (set #sub-dir "")            ;sub directory containing data files
  4. (set #readme-file "ReadMe")        ;name of readme file
  5. (set #man-file "Manual")        ;name of manual file
  6. (set #hint-file "Hints")        ;name of hint file
  7. (set #sol-file "Solution")        ;name of solution file
  8. (set #highs-file "highs")        ;name of high scores file
  9. (set #last-file "last-file")        ;last file the imager should create
  10. (set #prefix @app-name)            ;name of slave, directory
  11.  
  12. (set #ico_suffix_00 "inf")        ;Icon suffixes (not all of these must exist)
  13. (set #ico_suffix_01 "magicwb")
  14. (set #ico_suffix_02 "romicon")
  15. (set #ico_suffix_03 "newicon")
  16. (set #ico_suffix_04 "newexot")
  17. (set #ico_suffix_05 "coloricon")
  18. (set #ico_suffix_06 "colexot")
  19. (set #ico_suffix_07 "colfrank")
  20. (set #ico_suffix_08 "colchris")
  21. (set #ico_suffix_09 "colcode")
  22. (set #ico_suffix_10 "colcfou")
  23. (set #ico_suffix_11 "colakira")
  24.  
  25. ;Icon descriptions (max 21 chars if you have > 9 entries, or 27 chars otherwise.
  26. ;These are renamed to "gamename.info" so no illegal characters like :/* etc
  27. ;          "123456789012345678901234567"
  28. (set #ico_desc_00 "Normal")
  29. (set #ico_desc_01 "MagicWB Icon")
  30. (set #ico_desc_02 "RomIcon")
  31. (set #ico_desc_03 "NewIcon")
  32. (set #ico_desc_04 "NewIcon by Exotica")
  33. (set #ico_desc_05 "OS3.5 Icon")
  34. (set #ico_desc_06 "OS3.5 Icon by Exotica")
  35. (set #ico_desc_07 "OS3.5 Icon by Frank")
  36. (set #ico_desc_08 "OS3.5 Icon by Chris Vella")
  37. (set #ico_desc_09 "OS3.5 Icon by Codetapper")
  38. (set #ico_desc_10 "OS3.5 Icon by CFou")
  39. (set #ico_desc_11 "OS3.5 Icon by Akira")
  40.  
  41. ;****************************
  42. ;----------------------------
  43. ; checks if given program is installed, if not abort install
  44. ; #program - to check
  45.  
  46. (procedure P_ChkRun
  47.   (if (= 0 (run ("cd SYS:\nWhich %s >NIL:" #program)))
  48.     ("")
  49.     (abort
  50.       (cat
  51.     "You must install \"" #program "\" first!\n"
  52.     "It must be accessible via the path.\n"
  53.     "You can find it in the WHDLoad package."
  54.       )
  55.     )
  56.   )
  57. )
  58.  
  59. ;----------------------------
  60. ; ask for source drive
  61.  
  62. (procedure P_AskSrcDrv
  63.   (set #CI_cfg (getenv "WHDLSrcDrvRaw"))
  64.   (if (#CI_cfg) (if (getassign (substr #CI_cfg 0 (- (strlen #CI_cfg) 1)) "d") ("") (set #CI_cfg "")))
  65.   (set #CI_df0 (if (= "DF0:" #CI_cfg) ("") (if (getassign "DF0" "d") ("DF0:") (""))))
  66.   (set #CI_df1 (if (= "DF1:" #CI_cfg) ("") (if (getassign "DF1" "d") ("DF1:") (""))))
  67.   (set #CI_df2 (if (= "DF2:" #CI_cfg) ("") (if (getassign "DF2" "d") ("DF2:") (""))))
  68.   (set #CI_df3 (if (= "DF3:" #CI_cfg) ("") (if (getassign "DF3" "d") ("DF3:") (""))))
  69.   (set #CI_drive
  70.     (askchoice
  71.       (prompt "Select source drive for diskimages")
  72.       (default 0)
  73.       (choices #CI_cfg #CI_df0 #CI_df1 #CI_df2 #CI_df3)
  74.       (help @askchoice-help)
  75.     )
  76.   )
  77.   (select #CI_drive
  78.     (set #CI_drive #CI_cfg)
  79.     (set #CI_drive #CI_df0)
  80.     (set #CI_drive #CI_df1)
  81.     (set #CI_drive #CI_df2)
  82.     (set #CI_drive #CI_df3)
  83.   )
  84.   (run ("setenv WHDLSrcDrvRaw \"%s\"\ncopy ENV:WHDLSrcDrvRaw ENVARC:" #CI_drive))
  85. )
  86.  
  87. ;----------------------------
  88. ; copy file including icon if exist
  89. ; #copy-file - name of file to copy
  90.  
  91. (procedure P_CopyFile
  92.   (if (exists #copy-file) (
  93.     (copyfiles
  94.       (help @copyfiles-help)
  95.       (source #copy-file)
  96.       (dest #dest)
  97.     )
  98.     (if (exists ("%s.info" #copy-file)) (
  99.       (copyfiles
  100.         (help @copyfiles-help)
  101.         (source ("%s.info" #copy-file))
  102.         (dest #dest)
  103.       )
  104.       (tooltype
  105.         (dest (tackon #dest #copy-file))
  106.         (noposition)
  107.       )
  108.     ))
  109.   ))
  110. )
  111.  
  112. ;****************************
  113.  
  114. (if (< @installer-version (+ (* 44 65536) 10))
  115.   (
  116.     (message
  117.       (cat
  118.         "Warning: your installer is outdated.\n"
  119.         "Some features of this installation won't be available, "
  120.         "such as icon show and drawer opening. "
  121.         "You have version " (/ @installer-version 65536) "." 
  122.         (BITAND @installer-version 65535) ", recommended is version 44.10. "
  123.         "The 'installer' 44.10 comes with OS 3.5 but is also contained in the NDK 3.9. "
  124.         "You may also use the InstallerNG by Jens Tröger."
  125.         "\n\n"
  126.         "The installers can be obtained from the net:\n"
  127.         "http://www.amiga.com/3.9/download/NDK3.9.lha\n"
  128.         "aminet:util/sys/InstallerNG.lha"
  129.       )
  130.     )
  131.     (set #newstuff 0)
  132.   )
  133.   (set #newstuff 1)
  134. )
  135.  
  136. (if (exists #readme-file)
  137.   (if (= 0 (run ("SYS:Utilities/Multiview %s" #readme-file)))
  138.     ("")
  139.     (run ("SYS:Utilities/More %s" #readme-file))
  140.   )
  141. )
  142.  
  143. (set #program "WHDLoad")
  144. (P_ChkRun)
  145.  
  146. (set #program "Patcher")
  147. (P_ChkRun)
  148.  
  149. (if (getenv "WHDLInstPath")
  150.   (set @default-dest (getenv "WHDLInstPath"))
  151. )
  152. (set #dest
  153.   (askdir
  154.     (prompt
  155.       (cat
  156.     "Where should \"" @app-name "\" be installed?\n"
  157.     "A drawer \"" #prefix "\" will be automatically created."
  158.       )
  159.     )
  160.     (help @askdir-help)
  161.     (default @default-dest)
  162.   )
  163. )
  164. (run ("setenv WHDLInstPath \"%s\"\ncopy ENV:WHDLInstPath ENVARC:" #dest))
  165. (set #dest (tackon #dest #prefix))
  166. (if (exists #dest) (
  167.   (set #choice
  168.     (askbool
  169.       (prompt
  170.         (cat
  171.           "\nDirectory \"" #dest "\" already exists.\n"
  172.           "Should it be deleted?"
  173.         )
  174.       )
  175.       (default 1)
  176.       (choices "Delete" "Skip")
  177.       (help @askbool-help)
  178.     )
  179.   )
  180.   (if (= #choice 1)
  181.     (run ("Delete \"%s\" \"%s.info\" All Quiet Force" #dest #dest))
  182.   )
  183. ))
  184. (makedir #dest
  185.   (help @makedir-help)
  186.   (infos)
  187. )
  188.  
  189. ;----------------------------
  190.  
  191. (copyfiles
  192.   (help @copyfiles-help)
  193.   (source ("%s.Slave" #prefix))
  194.   (dest #dest)
  195. )
  196. (set #icon 0)
  197. (if (exists ("%s.%s" #prefix #ico_suffix_11)) ((set #icon 11)(set #icnt (+ 1 #icnt))(set #icon_11 #ico_desc_11)) (set #icon_11 ""))
  198. (if (exists ("%s.%s" #prefix #ico_suffix_10)) ((set #icon 10)(set #icnt (+ 1 #icnt))(set #icon_10 #ico_desc_10)) (set #icon_10 ""))
  199. (if (exists ("%s.%s" #prefix #ico_suffix_09)) ((set #icon 9) (set #icnt (+ 1 #icnt))(set #icon_09 #ico_desc_09)) (set #icon_09 ""))
  200. (if (exists ("%s.%s" #prefix #ico_suffix_08)) ((set #icon 8) (set #icnt (+ 1 #icnt))(set #icon_08 #ico_desc_08)) (set #icon_08 ""))
  201. (if (exists ("%s.%s" #prefix #ico_suffix_07)) ((set #icon 7) (set #icnt (+ 1 #icnt))(set #icon_07 #ico_desc_07)) (set #icon_07 ""))
  202. (if (exists ("%s.%s" #prefix #ico_suffix_06)) ((set #icon 6) (set #icnt (+ 1 #icnt))(set #icon_06 #ico_desc_06)) (set #icon_06 ""))
  203. (if (exists ("%s.%s" #prefix #ico_suffix_05)) ((set #icon 5) (set #icnt (+ 1 #icnt))(set #icon_05 #ico_desc_05)) (set #icon_05 ""))
  204. (if (exists ("%s.%s" #prefix #ico_suffix_04)) ((set #icon 4) (set #icnt (+ 1 #icnt))(set #icon_04 #ico_desc_04)) (set #icon_04 ""))
  205. (if (exists ("%s.%s" #prefix #ico_suffix_03)) ((set #icon 3) (set #icnt (+ 1 #icnt))(set #icon_03 #ico_desc_03)) (set #icon_03 ""))
  206. (if (exists ("%s.%s" #prefix #ico_suffix_02)) ((set #icon 2) (set #icnt (+ 1 #icnt))(set #icon_02 #ico_desc_02)) (set #icon_02 ""))
  207. (if (exists ("%s.%s" #prefix #ico_suffix_01)) ((set #icon 1) (set #icnt (+ 1 #icnt))(set #icon_01 #ico_desc_01)) (set #icon_01 ""))
  208. (if (exists ("%s.%s" #prefix #ico_suffix_00)) ((set #icon 0) (set #icnt (+ 1 #icnt))(set #icon_00 #ico_desc_00)) (set #icon_00 ""))
  209. (procedure P_Icon
  210.   (copyfiles
  211.     (help @copyfiles-help)
  212.     (source ("%s.%s" #prefix #icon-suf))
  213.     (newname ("%s.info" #icon-name))
  214.     (dest #icon-dir)
  215.   )
  216.   (tooltype
  217.     (dest (tackon #icon-dir #icon-name))
  218.     (noposition)
  219.   )
  220. )
  221. (if (> #icnt 1) (
  222.   (if (= #newstuff 1) (
  223.     (set #icon-dir ("T:%s Icons" #prefix))
  224.     (makedir #icon-dir
  225.       (help @makedir-help)
  226.     )
  227.     (if #icon_00 ((set #icon-suf #ico_suffix_00) (set #icon-name #ico_desc_00) (P_Icon)))
  228.     (if #icon_01 ((set #icon-suf #ico_suffix_01) (set #icon-name #ico_desc_01) (P_Icon)))
  229.     (if #icon_02 ((set #icon-suf #ico_suffix_02) (set #icon-name #ico_desc_02) (P_Icon)))
  230.     (if #icon_03 ((set #icon-suf #ico_suffix_03) (set #icon-name #ico_desc_03) (P_Icon)))
  231.     (if #icon_04 ((set #icon-suf #ico_suffix_04) (set #icon-name #ico_desc_04) (P_Icon)))
  232.     (if #icon_05 ((set #icon-suf #ico_suffix_05) (set #icon-name #ico_desc_05) (P_Icon)))
  233.     (if #icon_06 ((set #icon-suf #ico_suffix_06) (set #icon-name #ico_desc_06) (P_Icon)))
  234.     (if #icon_07 ((set #icon-suf #ico_suffix_07) (set #icon-name #ico_desc_07) (P_Icon)))
  235.     (if #icon_08 ((set #icon-suf #ico_suffix_08) (set #icon-name #ico_desc_08) (P_Icon)))
  236.     (if #icon_09 ((set #icon-suf #ico_suffix_09) (set #icon-name #ico_desc_09) (P_Icon)))
  237.     (if #icon_10 ((set #icon-suf #ico_suffix_10) (set #icon-name #ico_desc_10) (P_Icon)))
  238.     (if #icon_11 ((set #icon-suf #ico_suffix_11) (set #icon-name #ico_desc_11) (P_Icon)))
  239.     (openwbobject #icon-dir)
  240.   ))
  241.   (set #icon
  242.     (askchoice
  243.       (prompt "\nWhich icon would you like to install?\n")
  244.       (choices #icon_00 #icon_01 #icon_02 #icon_03 #icon_04 #icon_05 #icon_06 #icon_07 #icon_08 #icon_09 #icon_10 #icon_11)
  245.       (default #icon)
  246.       (help @askchoice-help)
  247.     )
  248.   )
  249.   (if (= #newstuff 1) (
  250.     (closewbobject #icon-dir)
  251.     (run ("Delete \"%s\" All Quiet Force" #icon-dir))
  252.   ))
  253. ))
  254. (if (> #icnt 0) (
  255.   (select #icon
  256.     (set #icon #ico_suffix_00)
  257.     (set #icon #ico_suffix_01)
  258.     (set #icon #ico_suffix_02)
  259.     (set #icon #ico_suffix_03)
  260.     (set #icon #ico_suffix_04)
  261.     (set #icon #ico_suffix_05)
  262.     (set #icon #ico_suffix_06)
  263.     (set #icon #ico_suffix_07)
  264.     (set #icon #ico_suffix_08)
  265.     (set #icon #ico_suffix_09)
  266.     (set #icon #ico_suffix_10)
  267.     (set #icon #ico_suffix_11)
  268.   )
  269.   (copyfiles
  270.     (help @copyfiles-help)
  271.     (source ("%s.%s" #prefix #icon))
  272.     (newname ("%s.info" #prefix))
  273.     (dest #dest)
  274.   )
  275.   ;installer has problems on deleting with newicons
  276.   ;(tooltype
  277.   ;  (dest (tackon #dest #prefix))
  278.   ;  (settooltype "Slave")
  279.   ;  (settooltype "PreLoad")
  280.   ;)
  281.   (tooltype
  282.     (dest (tackon #dest #prefix))
  283.     (settooltype "PreLoad" "")
  284.     (settooltype "Slave" ("%s.Slave" #prefix))
  285.   )
  286.   (tooltype
  287.     (dest (tackon #dest #prefix))
  288.     (setdefaulttool "WHDLoad")
  289.     (setstack 10240)
  290.     (noposition)
  291.   )
  292. ))
  293. (set #copy-file #readme-file)
  294. (P_CopyFile)
  295. (set #copy-file #man-file)
  296. (P_CopyFile)
  297. (set #copy-file #hint-file)
  298. (P_CopyFile)
  299. (set #copy-file #sol-file)
  300. (P_CopyFile)
  301. (set #dest-org #dest)
  302. (if (= #sub-dir "")
  303.   ("")
  304.   (
  305.     (set #dest (tackon #dest #sub-dir))
  306.     (makedir #dest
  307.       (help @makedir-help)
  308.     )
  309.   )
  310. )
  311. (set #copy-file #highs-file)
  312. (P_CopyFile)
  313. (copyfiles
  314.   (help @copyfiles-help)
  315.   (source ("%s.imager" #prefix))
  316.   (dest #dest)
  317. )
  318. (P_AskSrcDrv)
  319. (working "calling Patcher...")
  320. (run ("CD \"%s\"\nPatcher -p%s.imager -s%s\nDelete %s.imager Quiet" #dest @app-name #CI_drive @app-name))
  321. (if (exists (tackon #dest #last-file))
  322.   ("")
  323.   (abort "Diskimaging was not successful!\nThe Patcher was unable to create all needed files!")
  324. )
  325. (if (= #newstuff 1)
  326.   (openwbobject #dest-org)
  327. )
  328. (set @default-dest #dest-org)
  329. (exit)
  330.